/**
 * 邮箱
 * @param {*} s
 */
export function isEmail(s) {
  return /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(
    s
  );
}

/**
 * 银行卡
 * @param {*} s
 */
export function isBankCard(s) {
  return /^([1-9]{1})(\d{7,18})$/.test(s);
}

/**
 * 是否是整数
 * @param {*} s
 */
export function isNumber(s) {
  return s % 1 === 0;
}

/**
 * 是否是金额
 * @param {*} s
 */
export function isAmount(s) {
  let str = s.toString();
  let strIndex = str.indexOf(".");
  if (strIndex !== -1) {
    str = str.substring(strIndex + 1, str.length);
    return str.length < 3;
  }
  return true;
}

/**
 * 是否是折扣
 * @param {*} s
 */
export function isCoupon(s) {
  let str = s.toString();
  let strIndex = str.indexOf(".");
  if (strIndex !== -1) {
    str = str.substring(strIndex + 1, str.length);
    return str.length < 2;
  }
  return true;
}

/**
 * 手机号码
 * @param {*} s
 */
export function isMobile(s) {
  return /^1[0-9]{10}$/.test(s);
}

/**
 * 电话号码
 * @param {*} s
 */
export function isPhone(s) {
  return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s);
}

/**
 * URL地址
 * @param {*} s
 */
export function isURL(s) {
  return /^http[s]?:\/\/.*/.test(s);
}

/**
 * 密码 (不包含中文)
 * @param {*} s
 */
export function isPassword(s) {
  return /[\u4e00-\u9fa5]/.test(s);
  // return /^(?=.*[a-zA-Z])(?=.*[0-9])[A-Za-z0-9]{8,32}$/.test(s);
  // return /^[!@\$,\.#%'\+\*\-:;^_`0-9A-Za-z]{6,32}$/.test(s)
}

/**
 * 密码-数字
 * @param {*} s
 */
function hasNumber(s) {
  return /.*[0-9]{1,}.*/.test(s);
}
/**
 * 密码-大写字母
 * @param {*} s
 */
function hasUper(s) {
  return /.*[A-Z]+.*/.test(s);
}
/**
 * 密码-小写字母
 * @param {*} s
 */
function hasLower(s) {
  return /.*[a-z]+.*/.test(s);
}
/**
 * 密码-特殊字符
 * @param {*} s
 */
function hasSpecial(s) {
  var patrn = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~！@#￥%……&*（）——\-+={}|《》？：“”【】、；‘'，。、]/im;
  return patrn.test(s);
}
/**
 * 密码-校验密码输入字符种类
 * @param {*} s
 */
export function regPassNum(s) {
  var i = 0;
  if (hasNumber(s)) {
    i +=1;
  }
  if (hasUper(s)) {
    i +=1;
  }
  if (hasLower(s)) {
    i +=1;
  }
  if (hasSpecial(s)) {
    i +=1;
  }
  return i;
}

/**
 * 身份证号码
 * @param {*} s
 */
export function isIdCard(s) {
  return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(s);
}

/**
 * 中英文
 * @param {*} s
 */
export function isCnEn(s) {
  return /(^[\u4e00-\u9fa5a-zA-Z]+$)/.test(s);
}

/**
 * 中英文数字
 * @param {*} s
 */
export function isCnEnNum(s) {
  return /(^[\u4e00-\u9fa5a-zA-Z0-9]+$)/.test(s);
}

/**
 * 公司名称
 * @param {*} s
 */
export function isCompanyName(s) {
  return /^(?!\s*$)[A-Za-z0-9._\-\(\)\u4e00-\u9fa5\（）\s-]+$/.test(s);
}

/**
 * 姓名-名称 (中英文 + ·)
 * @param {*} s
 */
export function isPerson(s) {
  return /(^[\u4e00-\u9fa5·\s\a-zA-Z]+$)/.test(s);
}
